﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BDSUETableAdapters;
using System.Data;

/// <summary>
/// Clase de control para la gestion de archivos permite crear  eliminar archivos atraves de ArchivoTableAdapter.
/// ArchivoTableAdapter contiene los metodos de guardar, eliminar, consultar y validar archivo.
/// </summary>
public class GestionarArchivos
{
	public GestionarArchivos()
	{
		//
		// TODO: Agregar aquí la lógica del constructor
		//
	}

    /// <summary>
    /// Metodo para guardar en la informacio del archivo en la base de datos (llamando interiormente al metodo CrearArchivo). donde se valida que el nombre del
    /// archivo no este registrado en la base de datos. guardando el tipo del archivo como formato
    /// </summary>
    /// <param name="nombre">(string) nombre del archivo</param>
    /// <returns>(bool) retorna true en caso de que se pueda insertar en la BD, en caso controrio false</returns>
    /// 
    public bool SubirFormatos(string nombre)
    {
        ArchivoTableAdapter archivo = new ArchivoTableAdapter();

        if (Convert.ToInt32(archivo.Validar(nombre)) == 0)
            return  CrearArchivo(nombre, "formatos", DateTime.Now.ToShortDateString());
        else
        return false;
    }

    /// <summary>
    /// Metodo para guardar en la informacio del archivo en la base de datos (llamando interiormente al metodo CrearArchivo).
    /// donde se valida que el nombre del archivo no este registrado en la base de datos. 
    /// guardando el tipo de archivo como tareas
    /// </summary>
    /// <param name="nombre">(string) nombre del archivo</param>
    /// <returns>(bool) retorna true en caso de que se pueda insertar en la BD, en caso controrio false</returns>

    public bool SubirArchivo(string nombre)
    {
        ArchivoTableAdapter archivo = new ArchivoTableAdapter();
        try
        {
            if (Convert.ToInt32(archivo.Validar(nombre)) == 0)
                return CrearArchivo(nombre, "tareas", DateTime.Now.ToShortDateString());
            else
                return false;
        }
        catch { return false; }
    }

    /// <summary>
    /// Metodo para guardar la información del archivo en la base de datos
    /// </summary>
    /// <param name="nombre">(string) Nombre del archivo</param>
    /// <param name="tipo">(string) El tipo del archivo (tareas o formatos)</param>
    /// <param name="fechaSubido">(string) Fecha en la que se subio el archivo</param>
    /// <returns>(bool) true si inserto en la BD, en caso contrario flase</returns>

    public bool CrearArchivo(string nombre, string tipo, string fechaSubido)
    {
        ArchivoTableAdapter archivo = new ArchivoTableAdapter();

        try
        {
            archivo.Guardar(nombre, tipo, fechaSubido);
            return true;
        }
        catch
        {
            return false;
        }
       
    }

    /// <summary>
    /// consulta los archivos en el dado el tipo de busqueda que varia entre formatos y tareas
    /// </summary>
    /// <param name="tipoBusqueda">(string) tipo de busqueda (tareas o formatos)</param>
    /// <returns>DataTable con los datos consultados</returns>

    public DataTable ConsultarArchivo(string tipoBusqueda)
    {
        ArchivoTableAdapter archivos = new ArchivoTableAdapter();
        return archivos.Consultar(tipoBusqueda);
    }

    /// <summary>
    /// Elimina la información de un archivo, dado un identificador.
    /// </summary>
    /// <param name="id">(int) identificador del archivo a eliminar</param>
    /// <returns>(bool) retorna true si se pudo eliminar la información del archivo, false en caso contrario</returns>
    public bool EliminarArchivo(int id)
    {
        try
        {
            ArchivoTableAdapter tarea = new ArchivoTableAdapter();
            tarea.Eliminar(id);
            return true;
        }
        catch
        {
            return false;
        }
    }

    
}
